package redecolaborativa.client;

import java.util.List;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

@RemoteServiceRelativePath("fachadaService")
public interface Fachada  extends RemoteService {
	void cadastrarUsuario(String nome, String endereco, String login, String senha) throws Exception;
	String abrirSessao(String login, String senha) throws Exception;
	String localizarUsuario(String idSessao, String chave, String atributo) throws Exception;
	Integer getSessao(String login);
	void cadastrarItem(String login, String nome, String categoria, String descricao) throws Exception;
	List<String> getCategorias();
	List<String> pesquisaItens(String idSessao, String chave, String atributo, String tipoOrdenacao, String criterio) throws Exception;
	String getItem(String idSessao, String nome);
	void pedirEmprestado(String idSessao, String nome, int tempoPrevisto) throws Exception;
	String historicoIndividual(String idSessao);
	String historicoConjunto(String idSessao);
	void requisitarAmizade(String idSessao, String login) throws Exception;
	Boolean apareceBotao(String usuario, String outroUsuario);
	List<String> getSolicitacoesDeAmizade(String idSessao);
	void aprovarAmizade(String idSessao, String login) throws Exception;
	void rejeitarAmizade(String idSessao, String login) throws Exception;
	List<String> getAmigos(String idSessao, String loginOutro) throws Exception;
	List<String> getRequisicoesDeitem(String idSessao) throws Exception;
	void aprovarEmprestimo(String idSessao, String idRequisicaoEmprestimo) throws Exception;
	void rejeitarEmprestimo(String idSessao, String idRequisicaoEmprestimo) throws Exception;
	List<String> getRequisicoesDeDevolucao(String idSessao);
	List<String> getItensEmprestados(String idSessao);
	List<String> getItensAdquiridos(String idSessao);
	void requisitarDevolucao(String idSessao, String idEmprestimo) throws Exception;
	List<String> getItens(String idSessao);
	void devolverItem(String idSessao, int idEmprestimo) throws Exception;
	int getIdEmprestimo(String idSessao, String nomeItem) throws Exception;
	void avaliarItem(String idSessao, String nomeItem, float nota);
}